#pragma once

#include <iostream>
#include <sys/select.h> 
#include <unistd.h>

#include "Common.hpp"
#include "Socket.hpp"

using namespace SocketModule;

class SelectServer
{
public:
    // 构造
    SelectServer(int port):_listensock(std::make_unique<TcpSocket>()) // _listensock 继承子类TcpSocket
    {
        _listensock->BindTcpSocketMethod(port); // 绑定端口
    }

    // 服务器启动
    void Start()
    {
        _isrunning = true;
        while (1)
        {
            
        }
        _isrunning = false;
    }

    // 服务器停止
    void Stop()
    {
        _isrunning = false;
    }

    // 析构
    ~SelectServer()
    {}

private:
    std::unique_ptr<Socket> _listensock; // 基类套接字
    bool _isrunning = false; // 运行状态
};